﻿/**
* jQuery EasyUI 1.4.3
* Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved.
*
* Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt
* To use it on other terms please contact us at info@jeasyui.com
* http://www.jeasyui.com/license_commercial.php
*
* jQuery EasyUI treegrid 扩展
* jeasyui.extensions.treegrid.other.js
* 开发 流云
* 由 落阳 整理
* 最近更新：2016-03-22
*
* 依赖项：
*   1、jquery.jdirk.js
*
* Copyright (c) 2016 ChenJianwei personal All rights reserved.
*/
(function ($) {

    $.util.namespace("$.fn.treegrid.extensions");

    





    function resetExtensionsEvent(t, opts) {
        var target = t[0];
        if (opts.toggleOnClick) {
            //重写 easyui-treegrid 的 onClickRow 属性，以支持扩展功能。
            var _onClickRow = opts.onClickRow;
            opts.onClickRow = function (row) {
                if ($.isFunction(_onClickRow)) { _onClickRow.apply(this, arguments); }
                t.treegrid("toggle", row[opts.idField]);
            };
        }
    }

    function initializeExtensions(target) {
        var t = $(target),
            state = $.data(target, "treegrid"),
            opts = state.options;
    }

    function initializeExtensionsBefore(target, opts) {
        var t = $(target);

        resetExtensionsEvent(t, opts);
    }

    var _treegrid = $.fn.treegrid;
    $.fn.treegrid = function (options, param) {
        if (typeof options == "string") {
            return _treegrid.apply(this, arguments);
        }
        options = options || {};
        return this.each(function () {
            var jq = $(this),
                isInited = $.data(this, "treegrid") ? true : false,
                opts = isInited ? options : $.extend({},
                        $.fn.treegrid.parseOptions(this),
                        $.parser.parseOptions(this, [
                            { toggleOnClick: "boolean" }
                        ]), options);
            if (!isInited) {
                //由于部分事件（如onClickRow）的重写必须在初始化之前才有效，因此需提前处理
                initializeExtensionsBefore(this, opts);
            }
            _treegrid.call(jq, opts, param);
            if (!isInited) {
                initializeExtensions(this);
            }
        });
    };
    $.union($.fn.treegrid, _treegrid);

    var defaults = {

        //  扩展 easyui-treegrid 的自定义属性，表示当左键点击带有子节点的条目时，是否自动展开/折叠相应节点。
        //  Boolean 类型，默认为 false。
        //  备注：该功能不会影响到 easyui-treegrid 的原生事件 onClick。
        toggleOnClick: false
    };

    var methods = {


    };

    var compent = $.fn.treegrid;
    if (compent.extensions.defaults) {
        $.extend(compent.extensions.defaults, defaults);
    } else {
        compent.extensions.defaults = defaults;
    }

    if (compent.extensions.methods) {
        $.extend(compent.extensions.methods, methods);
    } else {
        compent.extensions.methods = methods;
    }

    $.extend(compent.defaults, defaults);
    $.extend(compent.methods, methods);

})(jQuery);